<?php
namespace Cms\Controller;

use Think\Controller;

class CommonController extends Controller
{
    // 用户
    private $user = null;

    // 需要登录验证的url，不能使用大写，不然有bug
    protected $need = [
        'index/index',
    ];

    public function __construct()
    {
        parent::__construct();

        if ($this->_loginHandle()) {
            // session 检查
            $this->_checkSession();
        }
    }

    /**
     * 检查是否登录过期，因为都是基于接口开发，所以检查key
     * @return [type] [description]
     */
    private function _checkSession()
    {
        if (C('DEV')) {

            $user_id = 1;

        } else {

            $user_id = session('cms_user_id');

            if (!$user_id) {
                session('refer', get_current_url());
                $this->redirect(U('user/login'));
            }
        }

        $user = M('user')->field('*')->find($user_id);

        if (!$user) {

            session('refer', get_current_url());
            $this->redirect(U('user/login'));
        }

        // 定义全局使用变量
        define('USER_ID', $user_id);
        $this->user = $user;
    }

    /**
     * 登录控制，处理不需要登录的控制器
     * @return [type] [description]
     */
    private function _loginHandle()
    {
        $is_check = in_array(strtolower(CONTROLLER_NAME . "/" . ACTION_NAME), $this->need);

        return $is_check;
    }
}
